﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.Proveedores.TransferObjects;
using System.Data.SqlClient;
using System.Data;

namespace Chilis.Proveedores.DataAccess
{
    using Mapper;

    public sealed class ConvocatoriaDA
    {

        public static IList<ConvocatoriaDTO> GetAllConvocatoria()
        {
            var resultado = new List<ConvocatoriaDTO>();
            var db = Conexion.CrearBaseDatos();
            using (IDataReader reader = db.ExecuteReader("pa_Convocatoria_Activa"))
            {
                while (reader.Read())
                {
                    resultado.Add(reader.GetConvocatoriaSelectItem());
                }
            }

            return resultado;
        }

        public static IList<ConvocatoriaDTO> GetAllConvocatoriaSinEvaluacion()
        {
            var resultado = new List<ConvocatoriaDTO>();
            var db = Conexion.CrearBaseDatos();
            using (IDataReader reader = db.ExecuteReader("pa_Convocatoria_SinEvaluacion"))
            {
                while (reader.Read())
                {
                    resultado.Add(reader.GetConvocatoriaSelectItem());
                }
            }

            return resultado;
        }

        public static IList<ConvocatoriaDTO> SearchConvocatoria(ConvocatoriaDTO filtro)
        {
            var resultado = new List<ConvocatoriaDTO>();
            var db = Conexion.CrearBaseDatos();
            using (IDataReader reader = db.ExecuteReader("pa_Listar_ReporteResumenProceso",
                                        filtro.Codigo,
                                        filtro.IdArea,
                                        filtro.FechaCreacion,
                                        filtro.FechaFin,
                                        filtro.Visita,
                                        filtro.Estado))
            {
                while (reader.Read())
                {
                    resultado.Add(reader.GetConvocatoriaSearch());
                }
            }

            return resultado;
        }

        public static ConvocatoriaDTO GetConvocatoriaById(int idConvocatoria)
        {   
            var db = Conexion.CrearBaseDatos();
            using (IDataReader reader = db.ExecuteReader("pa_Convocatoria_select", idConvocatoria))
            {
                reader.Read();
                return reader.GetConvocatoria();
            }

            return null;
        }
    }
}
